Over the last few decades Internet Protocol (IP) communications have become the dominant form of electronic communication. IP communications allow the use of a wide array of different protocols. To simplify data handling and routing, the protocols are arranged in a stack and the “lowest-level” protocols encapsulate the higher-level protocols. This encapsulation allows the idiosyncrasies of the higher level protocols to be hidden from the routing functions and further allows the partitioning of the analysis of the data.
In stand-alone devices, also known as embedded products and embedded devices, embedded computers are typically used to perform the encapsulation and de-encapsulation to send and receive the data respectively. An embedded computer is characterized as having a general purpose CPU, with associated memory. The computer runs an Operating System (OS), such as embedded Linux. The protocol processing is handled by the OS and application software is provided that runs on top of the OS to handle the communications functions and other tasks that are required.
This architecture is analogous to what is provided on general purpose computers (PCs) and workstations. Using the same processes to handle the communications in the embedded device as are used on general purpose computers is natural since IP communications was first performed only on general purpose computers and later migrated to embedded devices.
However, different from general purpose computers, embedded devices only have limited resources and are highly cost sensitive. The processor that can be employed in an embedded computer is often very limited in performance due to cost, space, and power consumption constraints. As a result an embedded device often cannot be cost effectively IP enabled for high-bandwidth devices.
To handle multiple tasks a real-time operating system (RTOS) is often employed which provides the abilities to respond to system requests in a very short period of time. Even with this, applications such as high performance image delivery for machine vision find the level of latency and the variation in the latency associated with the delivery of the video to be unacceptable. Further, when OS-based embedded devices are pushed to their limits they can become unreliable with deadlocks that freeze the device.
It is obvious that the above implementations do not address the requirements for protocol processing on a device, such as a high-speed electronic video camera or other high-bandwidth device. Therefore there is a need for a method and apparatus capable of processing IP packets with low, consistent latencies that are suitable for delivering video over an IP network.